package com.bid.base.common.feign;

import feign.Headers;
import feign.MethodMetadata;
import org.springframework.cloud.openfeign.support.SpringMvcContract;
import org.springframework.stereotype.Component;

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

/**
 * <strong>  feign使用的Contract  </strong> <br>
 * <p>
 * <strong>北京正源德标科技信息有限责任公司</strong> <br>
 * </p>
 * <br>
 *
 * @author : gaozhenfeng
 * @date Date : 2021年09月02日 10:11
 * 修改人 修改日期 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
//@Component
public class BidElecContract extends SpringMvcContract {


    @Override
    protected void processAnnotationOnMethod(MethodMetadata data, Annotation methodAnnotation, Method method) {
        //解析mvc的注解
        super.processAnnotationOnMethod(data, methodAnnotation, method);
        //解析feign的headers注解
        Headers headers = method.getAnnotation(Headers.class);
        if (null != headers) {
            String[] value = headers.value();
            for (String key : value) {
                if (key.contains(FeignAssistant.RPC_VUE_NOAUTH_KEY)) {
                    data.template().header(FeignAssistant.RPC_VUE_NOAUTH_KEY, System.currentTimeMillis()+"");
                }
            }
        }
    }


}